#ifndef PROCESSOR_H
	#include "processor.h"
#endif

#ifndef MEMORY_H
	#include "memory.h"
#endif

#ifndef DISCO_H
	#include "disco.h"
#endif

#ifndef CONSOLE_H
	#include "console.h"
#endif

#ifndef TIMER_H
	#include "timer.h"
#endif

#ifndef INTERRUPT_H
	#include "interrupt.h"
#endif

#ifndef KERNEL_H
#define KERNEL_H

typedef struct struct_Kernel
{
  Interrupt *i;
  Memory *m;
  Disco *d;
  Console *c;
  Timer *t;
  Processor *p;

} Kernel;

Kernel *kernel_create(Processor *processor, Interrupt *interrupt, Memory *memory, Disco *disco, Console *console, Timer *timer);

void *run_kernel (int hardwareInterruptNumber);
//void *run_kernel(void *kernel);

#endif
